home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / comm / mail / AminetRct.lha / US / AminetRct.yam
Text File  |  1997-08-26  |  7KB  |  224 lines

  1. /* $VER: AminetRct.yam 3.6 (26 AUG 97)
  2. ** by Charles Patterson <midian@azstarnet.com>
  3. ** http://www.azstarnet.com/~midian
  4. **
  5. ** Localization by Marc Hemes <marc.hemes@braunschweig.netsurf.de
  6. **
  7. ** Description: This script finds your "Today's Aminet Upload" email in
  8. **              YAM, lists the files so you can choose which ones you want
  9. **              to download, then sends email to a US FTPMAIL site to send
  10. **              them to you.
  11. **
  12. ** Requirements: YAM 1.3.4 (© 1995-96 Marcel Beck)
  13. **               TCP/IP Stack
  14. **               rexxreqtools.library 1.3 (© 1992-94 Rafael D'Halleweyn)
  15. **
  16. ** Instructions: Send email to listproc@mail.wustl.edu with the body:
  17. **                              SUBSCRIBE aminet-daily Your Name
  18. **                           or SUBSCRIBE aminet-weekly Your Name
  19. **               Copy this file to YAM:Rexx/
  20. **               Set FILES to the number of files you want listed at a time
  21. **               Open the YAM:.config file and add this line:
  22. **                              RexxMenu1 = YAM:Rexx/AminetRct.yam
  23. **               Download your email then run this script from the YAM
  24. **                  ARexx menu.
  25. **
  26. ** --- Files listed: --- */
  27. FILES = 10
  28.  
  29. today = "Today's Aminet "
  30. weekly = "This week's Ami"
  31.  
  32. OPTIONS RESULTS
  33. ADDRESS YAM
  34.  
  35. IF ~SHOW('L','rexxreqtools.library') THEN
  36.     ADDLIB('rexxreqtools.library',0,-30,0)
  37.  
  38. NL = '0A'x
  39.  
  40. IF OPEN('localeprefs','ENV:sys/locale.prefs','R') THEN DO
  41.     language = SUBSTR(READCH('localeprefs', 113), 83, 29)
  42.     language = SUBSTR(language, 1, POS(D2C(0), language) - 1)
  43.     CLOSE('localeprefs')
  44. END
  45.  
  46. SELECT
  47.     WHEN language = 'deutsch' THEN DO  /* german text */
  48.         MSG_NOMAIL        = "Keine E-Mails im Ordner !"
  49.         MSG_ASKCHECK      = "Welche möchten Sie prüfen ?"
  50.         MSG_ASKCHECK_GAD  = "Heu_te|_Woche|Alle tä_glichen|Alle wöch_entlichen|_Alle|Abbru_ch"
  51.         MSG_MAILNOTFOUND  = "E-Mails mit Aminet-Uploads nicht gefunden !"
  52.         MSG_LISTFILES     = "Dateien aus welchen E-Mails auflisten ?"
  53.         MSG_LISTFILES_GAD = "Au_sgewählte|_Andere"
  54.         MSG_FILES         = "Dateinummern eingeben (z.B. 1 2 5)"
  55.         MSG_FILES_GAD     = "_Ok|_Fertig|_Abbruch"
  56.         MSG_README        = "Möchten Sie für jede Datei auch auch die zugehörigen .readme-Dateien ?"
  57.         MSG_README_GAD    = "_Ja|_Nein"
  58.         MSG_ASKSEND       = "E-Mail wurde erstellt."NL"Möchten Sie:"
  59.         MSG_ASKSEND_GAD   = "E-Mail _senden|_Alle senden|E-Mail in die _Warteschlange"
  60.     END
  61.     OTHERWISE DO /* english text */
  62.         MSG_NOMAIL        = "No email in folder!"
  63.         MSG_ASKCHECK      = "Do you wish to check"
  64.         MSG_ASKCHECK_GAD  = "_Today's|_Week's|All _dailys|All w_eeklys|_All|_Cancel"
  65.         MSG_MAILNOTFOUND  = "Aminet Uploads email not found!"
  66.         MSG_LISTFILES     = "List files in:"
  67.         MSG_LISTFILES_GAD = "_Selected|_Other"
  68.         MSG_FILES         = "Enter filenumbers (ie. 1 2 5)"
  69.         MSG_FILES_GAD     = "_Ok|_Finished|_Cancel"
  70.         MSG_README        = "Do you want each file's .readme as well?"
  71.         MSG_README_GAD    = "_Yes|_No"
  72.         MSG_ASKSEND       = "Mail is done."NL"Do you want to:"
  73.         MSG_ASKSEND_GAD   = "_Send Mail|Send _All|_Queue Mail"
  74.     END
  75. END
  76.  
  77. INFO SCREEN
  78. pubscreen = result
  79. GETFOLDERINFO MAX
  80. entries=result
  81. IF entries=0 THEN
  82.     DO
  83.         test=RTEZREQUEST(MSG_NOMAIL,"_Ok",,"rt_pubscrname="pubscreen)
  84.         EXIT
  85.     END
  86.  
  87. lfi = 0
  88. t = 0
  89. checkn = 0
  90. filename. = ''
  91. GETMAILINFO SUBJECT
  92. sub = LEFT(RESULT,15)
  93. IF sub = today | sub = weekly THEN
  94.     DO
  95.         test=RTEZREQUEST(MSG_LISTFILES,MSG_LISTFILES_GAD,,"rt_pubscrname="pubscreen)
  96.         lfi = rtresult
  97.     END
  98. IF lfi THEN
  99.     DO
  100.         t = 1
  101.         GETMAILINFO FILE
  102.         filename.1 = RESULT
  103.     END
  104. ELSE
  105.     DO
  106.         test=RTEZREQUEST(MSG_ASKCHECK,MSG_ASKCHECK_GAD,,"rt_pubscrname="pubscreen)
  107.         checkn = rtresult
  108.         IF checkn = 0 THEN EXIT
  109.         IF checkn = 1 | checkn = 3 THEN check = today
  110.         IF checkn = 2 | checkn = 4 THEN check = weekly
  111.         DO n = entries-1 TO 0 BY -1
  112.             SETMAIL n
  113.             GETMAILINFO SUBJECT
  114.             sub = LEFT(RESULT,15)
  115.             IF checkn = 5 THEN
  116.                 DO
  117.                     IF sub = today | sub = weekly THEN
  118.                         DO
  119.                             t = t + 1
  120.                             GETMAILINFO FILE
  121.                             filename.t = RESULT
  122.                         END
  123.                     END
  124.             ELSE
  125.                 IF sub = check THEN
  126.                     DO
  127.                         t = t + 1
  128.                         GETMAILINFO FILE
  129.                         filename.t = RESULT
  130.                     END
  131.         END
  132.     END
  133.  
  134. IF t = 0 THEN
  135.     DO
  136.         test=RTEZREQUEST(MSG_MAILNOTFOUND,"_Ok",,"rt_pubscrname="pubscreen)
  137.         EXIT
  138.     END
  139.  
  140. IF checkn < 3 THEN t = 1
  141.  
  142. DO mail = 1 to t
  143.     line. = ''
  144.     ADDRESS COMMAND 'COPY 'filename.mail' TO T:FTPMail.rct'
  145.     OPEN('recent','T:FTPMail.rct','R')
  146.  
  147.     DO UNTIL LEFT(READLN('recent'),3) = '|--'
  148.     END
  149.  
  150.     i=0
  151.     DO WHILE ~EOF('recent')
  152.         i=i+1
  153.         line.i=READLN('recent')
  154.         IF LEFT(line.i,1) = '|' THEN BREAK
  155.         IF STRIP(line.i) = '' THEN i=i-1
  156.     END
  157.     CLOSE('recent')
  158.  
  159.     c = 0
  160.     w = i%FILES
  161.     IF i//FILES >0 THEN w = w + 1
  162.  
  163.     DO n = 1 to w
  164.         DO f = n*FILES-(FILES-1) to n*FILES
  165.             PARSE VAR line.f file.f dir.f size.f '+' desc.f
  166.             file.f = LEFT(file.f,18,' ')
  167.             dir.f = LEFT(dir.f,10,' ')
  168.             size.f = RIGHT(size.f,4,' ')
  169.             desc.f = LEFT(desc.f,37,)
  170.         END
  171.  
  172.         reqstr = ''
  173.         DO x = f-FILES to f-1
  174.             y=x
  175.             if y<10 then y=' '||y
  176.             reqstr =  reqstr || y'. 'file.x' 'dir.x' 'size.x' 'desc.x||NL
  177.         END
  178.         input = RTGETSTRING(,reqstr,MSG_FILES,MSG_FILES_GAD,"rt_pubscrname="pubscreen)
  179.         IF rtresult = 2 THEN BREAK
  180.         DO WHILE input ~= ''
  181.             c = c+1
  182.             PARSE VAR input filenum.c input
  183.             j = filenum.c
  184.             IF STRIP(file.j) = '' THEN c = c-1
  185.         END
  186.     END
  187.  
  188.     IF c > 0 THEN
  189.         DO
  190.             test=RTEZREQUEST(MSG_README,MSG_README_GAD,,"rt_pubscrname="pubscreen)
  191.             read = rtresult
  192.             OPEN('mailout','T:FTPMail.tmp','W')
  193.             WRITELN('mailout','connect ftp.wustl.edu')
  194.             WRITELN('mailout','uuencode')
  195.             DO mc = 1 to c
  196.                 d = filenum.mc
  197.                 dir = STRIP(dir.d)
  198.                 file.d='pub/aminet/'||dir||file.d
  199.                 WRITELN('mailout','get 'file.d)
  200.                 IF read THEN
  201.                     DO
  202.                         lgt = LENGTH(COMPRESS(file.d))-3
  203.                         filer=LEFT(file.d,lgt)
  204.                         WRITELN('mailout','get 'filer'readme')
  205.                     END
  206.             END
  207.             WRITELN('mailout','quit')
  208.             CLOSE('mailout')
  209.             MAILWRITE
  210.             WRITEMAILTO '"ftpmail@pub1.bryant.vix.com"'
  211.             WRITESUBJECT '"Aminet Downloads"'
  212.             WRITELETTER 'T:FTPmail.tmp'
  213.             test=RTEZREQUEST(MSG_ASKSEND,MSG_ASKSEND_GAD,,"rt_pubscrname="pubscreen)
  214.             choice = rtresult
  215.             IF choice = 1 THEN WRITESEND
  216.             ELSE WRITEQUEUE
  217.             IF choice = 2 THEN MAILSENDALL
  218.         END
  219.  
  220. END
  221. ADDRESS COMMAND 'DELETE >NIL: T:FTPMail.*'
  222. EXIT
  223.  
  224.